home *** CD-ROM | disk | FTP | other *** search
Text File | 1988-08-15 | 67.5 KB | 1,427 lines |
- MS-DOS Kermit Version 2.29 Release Notes, May 26, 1986:
-
- New Features:
-
- . Full DOS 2.0 file support; device and path may be included in any
- file specification in any Kermit command. DOS 1.x support fully removed.
- Version 2.29 will not run under DOS 1.x (neither would 2.28).
-
- . On the IBM PC family, emulation of VT52, H19, VT102, and dumb terminal (the
- latter to allow coresidence with a loadable console driver like [N]ANSI.SYS).
- Support for host control of 25th line during terminal emulation. Increased
- screen memory for rollback, dynamically sized to allow for varying memory
- capacity (about 8K required per screenful). Program needs at least 60K to
- run, will use as much as 100K if available, plus more when PUSH, SPACE, or
- other commands that invoke DOS or other programs are used.
-
- . VT102 emulation on IBM PC family includes all major VT102 features except
- 132 columns, smooth scrolling, printer control, and various diagnostic
- functions. H19/VT52 emulation is more complete than in previous versions.
- VT102 is equivalent to VT100 with AVO, plus line and character insert and
- delete functions, and local echo capability, i.e. it is a strict superset
- of the VT100, and is upwards compatible with ti.
-
- . The MS-DOS Kermit server responds to advanced server commands (REMOTE DIR,
- REMOTE HOST, REMOTE DEL, REMOTE TYPE, REMOTE CWD, etc). But because
- certain DOS "interactions" can't be fully disabled, these commands can
- sometimes cause the server to hang (like when DOS asks "Abort, Retry,
- Ignore?" at the real console).
-
- . Improved file name handling, to prevent destruction of directory,
- system, hidden, read-only, and volume label files. GET and RECEIVE allow
- device and path to be prefixed to incoming filename. File renaming algorithm
- much improved for conversion of incoming file names to DOS conventions, and
- for filename collision avoidance. Only valid DOS filenames are created or
- used for new files.
-
- . On the IBM PC family, compatibility with TopView, DesqView, and MS Windows,
- and with the IBM Extended and Professional Graphics Adapters.
-
- . Screen save (on the DEC Rainbow and IBM family only). <esc-char>F
- appends current screen to file KERMIT.SCN; use SET DUMP to change screen
- dump file (or device) name. Differs from LOG in that escape codes are
- not saved, only the text itself (sans attributes). Use in conjunction
- with screen rollback to save the last several screens.
-
- . New SET TERMINAL command for setting terminal type and parameters,
- including foreground and background color and intensity on systems that
- support it (currently only for IBM family). Also, explicit control over
- whether program should wait for vertical retrace cycle to write screen (snow
- removal).
-
- . New file transfer display options: SET DISPLAY QUIET, REGULAR, SERIAL.
-
- . Program segments are now ordered independently of MASM/LINK version, without
- any special switches required for building, which should clear up all the
- system crashes that occurred when people ran the program after building it
- from source without the appropriate switches.
-
- . Assembles with MS MASM 1.25, IBM MASM 2.0 aka MS MASM 3.0, and MS MASM 4.0,
- as well as Intel RMX assembler.
-
- . Increased screen rollback memory on DEC Rainbow.
-
- . Heath/Zenith-100 port i/o now interrupt driven, therefore much faster.
-
- . COMMENT command, for documenting TAKE files.
-
- . SET RETRY n command for changing the packet retry threshold.
-
- . HANGUP command for dropping DTR & RTS, to signal modem to hang up phone
- (IBM family only).
-
- . LOG command now also logs debugging information (packets, terminal session)
- if SET DEBUG ON command has been given.
-
- . All known bugs in 2.28 fixed including:
- Severe problems if program assembled and linked improperly
- GET command filename confusion
- Failure to warn when run under DOS 1.x
- Many problems with file renaming, name truncation, etc.
- Exported filenames with no filetype no longer end with period
- SET DEST PRINTER didn't work correctly
- Problems with dynamic memory allocation causing system crashes
- Problems with dynamic memory allocation requiring more memory than necessary
- Problems with file transfer display & mode line display on early PC, Compaq
- Problem with <esc-char>? display on early PC, Compaq
- Heath-19 emulation bug regarding receipt of CR or LF at col 80 vs autowrap
- The "C?" bug in the command parser
- ^C of a file transfer now honors SET INCOMPLETE KEEP
- Lost clusters on disk if BYE command given with log file open
- RUN command did not default file types .EXE, .COM, .BAT
- Long debug lines would overflow screen
- Overruns of half duplex systems at high baud rates
- Control-prefix operands in packets not range checked
- Interrupt and performance problems on IBM PC family
- Numbers sometimes disappearing from file transfer display
- Problems parsing SET PORT options in generic MS-DOS Kermit
- Program crashes with "divide overflow" when transferring very long file
- Tendency to hangup Hayes 1200B internal modem upon startup
- Problems when padding with more than 2 or 3 characters
-
- Known limititations of version 2.29:
-
- . On the IBM family, SET MODE OFF, SET MODE ON sequences can produce
- permanent, normal-video mode line.
- . On the IBM family, SET DEBUG ON not only selects packet display during file
- transfer, but also control-character/escape-sequence display during
- terminal emulation. There are no separate controls for these functions.
- . On systems that use "grey keys" or F-keys for functions like BREAK, modeline
- toggle, screen scroll, or emulator reset, there is no way to move these
- functions to other keys. Therefore, if "traditional" (e.g. keypad) values
- are to be assigned to these keys using SET KEY, their built-in Kermit
- functions are lost.
- . Certain keys on the IBM PC keyboard produce no scan code detectable by
- Kermit, e.g. keypad 5, control-5, etc., and therefore cannot be redefined
- with SET KEY SCAN. Additional keys on the new "enhanced" keyboard
- (such as F11 and F12) behave similarly.
- . On some systems, the message "Undefined baud rate" may appear when program
- is started. This just means you should issue a SET SPEED command.
- . Semicolons can not be used in filenames in GET commands from TAKE files,
- because within TAKE files, semicolons are treated as the start of a comment.
- . Caution should be used when invoking certain terminate-and-stay-resident
- programs while PUSHed from Kermit (e.g. using the PRINT command for the first
- time), as not all of these programs observe proper etiquette for allocating
- and freeing memory.
- . Each command macro definition is limited to 132 characters in length.
- Longer macros can be formed by chaining (end one definition with a DO
- for the next).
- . On early (original motherboard & BIOS) PCs, and on systems that mimic them
- (e.g. Compaq), the cursor may assume a strange shape upon return from
- CONNECT. This is caused by a bug in the early BIOS, which stored cursor
- attributes incorrectly.
- . MS-DOS Kermit cannot read commands from a .BAT file. It only reads them
- from the keyboard. It may be run in the batch, but only using command
- line arguments (possibly invoking TAKE files).
-
- Incompatibilities with previous releases:
-
- . SET HEATH gone, replaced by SET TERMINAL { HEATH, VT102, etc }
- . SET AUTOWRAP gone, replaced by SET TERMINAL WRAP
- . SET REMOTE ON/OFF changed to SET DISPLAY OFF/ON (but SET REMOTE still there)
- . Filename completion (recognition) no longer works, because of support for
- fully qualified DOS 2.0 pathnames.
-
- Tested successfully on the following systems:
-
- . IBM PC, XT, AT, PCjr, Portable PC, Convertible PC, and RT with AT DOS option
- . Compaq, Z150, Z160, and other IBM compatibles
- . DEC Rainbow
- . Heath/Zenith-100
- . HP-150, HP-110, and Portable Plus
- . NEC APC and APC-3
- . Victor 9000 / Sirius 1
- . ACT Apricot
- . Sanyo MBC 550
- . Texas Instruments Professional PC
- . Generic MS-DOS
- . Intel 300 series with iRMX-86
-
- Needs testing on:
-
- . Wang PC
- . Olivetti M24 PC
- . Grid Compass II
- . DECmate-II,III with XPU (MS-DOS) option
-
- IBM PC family H19 and VT102 emulators tested successfully with:
-
- . EMACS (DEC-20, CCA, GNU, and others, using line/char insert/delete)
- . EDT, PHONE (VAX/VMS) (what else on VMS? TPU?)
- . 1-800-DEC-DEMO
- . UNIX vi, sysline, etc
- . Various torture tests
-
- What's not in 2.29 (wish list for future releases):
-
- . TRANSMIT command for raw file upload
- . Login scripts
- . DIAL command, telephone directory
- . Transaction file logging.
- . A way to accept default values for omitted trailing fields in commands.
- . A better built-in help facility.
- . VT102 ANSI printer control
- . Long packets, sliding windows, or attribute packets
- . Tektronix or other graphics terminal emulation (except in TI Pro & Victor)
- . Redefinable keys at Kermit-MS> prompt level
- . Control over display of 8-bit characters during CONNECT
- . Pause at end of screen during local TYPE
- . A simple way to make Alt = Meta, without many many SET KEY commands
- . Piped operation a la UNIX (e.g. compress foo.bar | kermit send)
- . Integration with C-Kermit protocol modules
-
- Request contribution of TopView .PIF file, Desqview and Windows configuration
- files, verification that 2.29 works on the as-yet untested systems, along with
- .BOO files, installation instructions, etc., for those systems.
- Notes on MS Kermit 2.29B
- 19 Feb 1987
-
- This most recent version of MS Kermit 2.29 has support for VT102
- printer commands, Long packets, and Scripts. Additionally, it has corrections
- to most problems known at this time.
-
- A new kind of MS Kermit, MSTCLO.BOO, is available for near clones
- of IBM PC's but whose serial port hardware is not similar. Here is a
- description from the originator, Glenn Everhart of RCA Labs:
-
- This module is derived from MSXIBM.ASM and is intended for IBM PC
- near-clones that differ in their serial I/O but emulate the IBM
- BIOS. Such machines include Seequa Chameleon, DG/1, and others.
- The idea is to use the VT100 emulation (which will work) but
- use BIOS for all serial I/O. This is not interrupt driven and so
- will (unfortunately) not be able to keep up well at high baud
- rates. Nevertheless, it will be far better than the old Seequa
- version which didn't emulate anything.
-
- This version will also work on IBM PCs that need to use something other than
- the internal asynchronous adapter for communications, like a Token Ring asynchronous communication server via NETBIOS.
-
-
- BUG FIXES AND INTERNAL IMPROVEMENTS:
-
- Two important problems with MS Kermit 2.29 (no letter) were an
- incompatibility with Hayes internal modems, and related modems: the modem
- would hangup the phone when a file transfer completed or Connect mode
- were exited, and secondly, null characters could be sent at the start of
- a file transfer or when Connect mode was entered. It seems that several
- mainframes regard null characters as important signals rather than as fillers.
- We have tested this version with a real Hayes 1200B modem with satisfactory
- results.
-
- There were numerous small problems throughout MS Kermit, as might
- be expected, and those identified to date have been addressed. One important
- one was the serial port was left active if one PUSHed to DOS while in Connect
- mode.
-
- Serious DOS errors are trapped by Kermit to prevent Kermit from being
- aborted with the serial port interrupt alive and with a couple of other items
- redirected to Kermit itself. The most common such error is "Drive Not Ready."
- Previously, these conditions would invoke the normal DOS Critical Error proc
- which would request "Abort, Retry, Ignore?" and would abort the program if
- Abort were chosen. Now, Kermit exercises a fourth option, Fail the Operation,
- when these errors occur. Procedures spawning a second copy of COMMAND.COM
- (DIR, etc) still can yield the A/R/I message but it is harmless in this case.
- However, if such a message arises while Kermit is in Server mode a human must
- still type the answer locally. The implementation replaces the normal DOS
- Control-Break (^C) and Critical Error handlers with Kermit's own handlers and
- restores the originals when Kermit exits.
-
- Numerous small bugs concerning negotiated parameters (8 bit quoting,
- Block check types, etc) have been fixed; these mainly concerned Server mode
- operations. The terminal emulator no longer responds to the answer-back msg
- request; there is no answer-back message in the emulator. Screen handling
- has been improved internally, but it still has a few glitches.
-
- While in Connect mode 8 bit received data will be passed through to
- the terminal processor if the Parity type is None. If Debugging is ON then
- characters with their high bit set will be displayed as a tilde and then a
- code for the lower 7 bits; i.e., 10000001b is displayed as ~^A. Note: due
- to network quirks these characters may be mistranslated; the tilde is the
- funny wiggle character above the accent mark and the control symbol is a
- caret.
-
-
- ADDITION TO SET DISPLAY COMMAND:
-
- Set Display Regular | Serial | Quiet | 7-bit | 8-bit
-
- The keywords 7-bit and 8-bit have been added to control displays
- of characters in non-file transfer modes. 7-bit is the default and 8-bit
- becomes meaningless when parity is other than None. The Set Display
- command accepts two keywords in one command, processed left to right.
-
- ADDITION TO SET PROMPT COMMAND:
-
- Special characters, such as escape, can be included in text of
- Kermit's prompt by specifying them as octal numbers in the form \ooo
- where o is an octal digit. Escape itself is \33. To return to Kermit's
- default prompt give the Set Prompt command without text. The replacement
- prompt can be up to 80 characters long.
-
-
- ANSI PRINTER SUPPORT:
-
- For VT102 emulator in IBM and NEC AP3 versions. New escape sequences:
-
- ESC [ i Print the entire screen (24 user lines) or just the text
- in the scrolling region, depending on ESC [ ? 19 h/l below.
- ESC [ 0 i is an equivalent command.
-
- ESC [ ? 1 i Print the line containing the cursor.
-
- ESC [ 4 i Disable Controller print. Cursor returns to its position
- when ESC [ 5 i was encountered earlier.
-
- ESC [ ? 4 i Disable Auto Print.
-
- ESC [ 5 i Enable Controller print; incoming text is sent to printer but
- not to the screen. Escape sequences are recognized and acted
- upon but are not printed. Cursor movement cannot be prevented.
-
- ESC [ ? 5 i Enable Auto Print; incoming text is sent to both screen and
- printer. Escape sequences are recognized and acted upon but
- are not printed.
-
- ESC [ ? 18 h Set Print termination char; requests Form Feed be printed
- after each Print Screen operation (ESC [ i).
-
- ESC [ ? 18 l Reset Print termination char; no FF after Print screen.
-
- ESC [ ? 19 h Sets print area of ESC [ i to be the whole screen (24 lines).
-
- ESC [ ? 19 l Resets print area of ESC [ i to be just scrolling region.
-
- ESC [ ? 15 n Request from remote host for printer status report.
-
- ESC [ ? 10 n Response to ESC [ ? 15 n if printer is ready.
-
- ESC [ ? 13 n Response to ESC [ ? 15 n if printer is not ready.
-
- The print device is selected to be the system printer (system file
- handle 4, LPT1) and the user has no choice in the matter. If the printer is
- not ready then a message to this effect is shown on the mode line (line 25)
- and the print request is skipped. Skipping is done to prevent systems from
- being hung just because the printer was not plugged in or similar trivia.
- Trailing spaces on each line are trimmed off to save printing time. These
- print screen operations should be compatible with all the other screen to
- printer operations (screen dump key, Log to PRN, DOS print screen, etc).
-
- Startup conditions are to reset both Print termination char and screen
- area bits; i.e., no FF after a print screen command and use scrolling region.
-
-
- LONG PACKETS:
-
- This version can use packets up to 1000 bytes in length. The file
- sender selects the type of packet (Regular or Long) based upon the size of the
- data to be sent in that particular packet; negotiations at the start of a file
- transfer determine the maximum length. The receiver is prepared to accept Long
- packets at any time up to a maximum length set by the user.
-
- The command SET RECEIVE PACKET-LENGTH xxx limits the
- maximum packet size; xxx can be as large as 1000. Kermit uses 94 byte
- packets as its default maximum size; longer packets will be employed only if
- the user gives the SET RECEIVE PACK commands above, and the other Kermit
- knows how to and agrees to send them. Packet lengths greater than 94 are
- accomplished using a protocol extension -- Extended Length Packets -- that may
- be lacking in other Kermit programs. The SET SEND PACKET xxx command may
- be used to override the other Kermit's request.
-
- WARNING: The normal file transfer display will be fractured if you use long
- packets together with SET DEBUG ON. If you want to display long packets during
- file transfer, be sure to SET DISPLAY SERIAL.
-
-
- PERFORMANCE:
-
- The IBM serial port interrupt routine, buffer handler for received
- chars, and the packet assembly/disassembly routines Spack and Rpack have been
- completely rewritten for efficiency, Long packets, and high speed operations.
- It is possible to operate at 38400 baud on a plain 4.77 MHz IBM PC provided
- that the clock tic routine is not loaded with time consuming extras (Helpful
- Utilities, print spoolers, screen savers, and the like). Long packet and
- high efficiency code are system independent; fancy high speed operation code
- is for IBM PC's and clones and the DEC Rainbow.
-
-
- SCRIPTS:
-
- A simple Kermit-style script and raw file upload facility has been
- written by Jim Sturdevant and myself (he did the original version and we
- developed it from there). This code is actually system independent. A quick
- discussion is reproduced below, and the Kermit Help menu has further cryptic
- guidance.
-
- Here is a quick guide to scripts in MS Kermit 2.29. There are several
- main script commands shown below in Upper case and yet another batch of Set
- commands to establish operational parameter for scripts.
-
- OUTPUT text
- Sends the single line of text out the serial port. Spaces and tabs
- are included. Control characters such as a carriage return must be stated
- as an octal number preceeded by a backslash: carriage return is \15, line
- feed is \12, bell is \7, and so forth. Example, dial the phone via a modem:
- Output atdt 5,1234, (918) 555-1212\15
- The "text" also can be the first line of a file or even from the console if
- the first letter of the text is an at-sign, @filename or @con. Thus,
- Output @con
- reads a line from the console and sends it out the serial port.
- You can also include "\b" or "\B" in your script to have it send a BREAK.
-
- INPUT [time] text
- This is a heavily used operation which reads characters from the
- serial port and attempts to match them to the line of text, or times out
- if it can't. A common command of this kind would be
- Input 30 Username:
- The sequence above waits up to 30 seconds for the pattern Username: to
- appear. If it does then the next script command is executed. If it does not
- appear then the script file can be told to Quit or to Proceed as if
- the pattern did occur. The time field is optional and is nominally 1 second.
- Selection of Quit or Proceed and the default waiting time are governed by
- the Set Input command discussed below. Text may also be replaced by
- at-sign filename to cause the pattern to be selected as the first line in
- that file.
- If the text pattern is omitted then the Input command reads
- characters from the serial port, displays and then discards them.
- A recent addition allows a carriage return typed at the local keyboard
- to force a pattern match (for those of us with limited patience concerning
- recalcerant remote hosts).
-
- PAUSE [time]
- Waits 1 second, or the number of seconds in the optional argument.
-
- ECHO text
- Simply writes the line of text on the screen. Text may contain
- imbedded escape codes (e.g. VT100 sequences for Rainbow firmware
- or [N]ANSI.SYS.).
-
- CLRINP
- Empties the serial port's buffer of stored but not yet read characters.
-
- TRANSMIT filespec [prompt]
- Raw file upload. Sends the named file (no wild cards) a line at a time
- to the remote host. Each line is expected to end with carriage return-line
- feed, and the trailing line feed is not sent. After each line Kermit waits
- for a prompt character from the other side. The default prompt char is a
- line feed. The command line allows the prompt to be changed to any other
- character (control codes are expressed as an octal number in the form \ooo);
- specifying a prompt of \0 means do not wait for a prompt. Alternatively,
- pushing the local Return key simulates reception of prompt.
- Trans foo.bar \7 send file "foo.bar", expect ^G as a prompt.
-
- SET INPUT commands:
-
- Set Input Default-timeout seconds
- Changes the waiting time from 1 second to this new value.
-
- Set Input Timeout-action Proceed or Quit
- Determines whether or not the current script file is to be continued
- or exited if a timeout occurs. Proceed is the default and means that timeouts
- are ignored. Quit causes the current script file to be exited and control
- passed to either the next higher level script file (if the present one were
- invoked by such) or to Kermit's main prompt.
-
- Set Input Case Ignore or Observe
- Says whether or not to distinguish upper and lower case text when
- doing a matchup in the INPUT command. Ignore causes upper and lower case
- letters to be considered the same. Default is to Ignore case distinctions.
-
- Set Input Echo On or Off
- Show on the screen characters read from the serial port during the
- script operation, or not. Default is On, show them.
-
- Values of Set Input things are shown on Kermit's Status display.
-
- Construction of a script file. Kermit has the ability to read a file,
- called a Take file in Kermit-ese, and execute the contents as Kermit commands.
- The Kermit command to do this is TAKE filename. Within such a file may be
- another Take command, and within it yet another Take and so on. Thus, the
- script is prepared as an ordinary text file and is invoked within Kermit
- by saying Take filename; a complete working example is given below.
- Before getting to it, however, a word or two about timeouts. If the
- action on timing out is set to Quit then the current Take file is exited
- whenever a timeout occurs and processing continues at any next higher level
- Take file; there is no conditional branching in this script facility. Also,
- Kermit looks for a particular file, MSKERMIT.INI, at startup time and
- executes it as the first Take file; you may place normal startup and script
- commands there as a convenience.
-
- An example script is shown below for connecting to machine VAXB via
- a modem and a Data Switch. The lines starting with Comment are ignored by
- Kermit and are there as a tutorial guide. Comments may also be placed on a
- line beginning with a semicolon. Upper case is used for clarity.
- File LOGIN.SCP -
-
- Comment set Kermit's baud rate to 2400
- SET SPEED 2400
- Comment flush any old junk
- CLRINP
- Comment don't display Take file commands as we go
- SET TAKE OFF
- Comment quit script if proper answers do not appear
- SET INPUT TIMEOUT-ACTION QUIT
- Comment see if modem is alive, hello modem.
- OUTPUT AT\15
- Comment look for its normal response
- INPUT OK
- Comment dial the Micom switch (from on-campus)
- OUTPUT ATDT 3458\15
- Comment look for phone being answered
- INPUT 25 CONNECT
- Comment wait 1 sec for modem to get ready
- PAUSE 1
- Comment then send control code carriage return,
- Comment expressed as an octal number preceded by \.
- OUTPUT \15
- Comment wait a sec for the switch to wake up
- PAUSE 1
- Comment one more time so the switch recognizes our baud rate
- OUTPUT \15
- Comment find first part of switch's announcement
- INPUT 10 slowly
- Comment ignore timeouts from here on
- SET INPUT TIMEOUT PROCEED
- Comment find last word of the announcement
- INPUT 15 CLASS
- Comment tell the switch where we want to attach
- OUTPUT VAXB\15
- Comment look for final prompt of Go and a beep
- INPUT 20 Go\7
- Comment let switch get ready for our response
- PAUSE 1
- Comment wakeup vaxb, c/r's, slowly as instructed
- OUTPUT \15
- PAUSE 1
- OUTPUT \15
- PAUSE 1
- Comment third c/r, just in case. Awaken Vaxen
- OUTPUT \15
- Comment look for login sequence
- INPUT Username:
- Comment give our username
- OUTPUT ItsMeAgain\15
- INPUT Password:
- Comment give ourselves a prompt and read from console
- ECHO \15\12Enter password:
- OUTPUT @con
- Comment we're in, go test for new mail msg
- TAKE mail.scp
- Comment go into VT102 terminal emulation mode
- CONNECT
-
- And here is file MAIL.SCP, with added comments -
-
- Comment show serial port traffic as we go
- SET TAKE ON
- Comment Exit this file if timeout (no new mail)
- SET INPUT TIMEOUT QUIT
- Comment look for keyword Mail, timeout if none
- INPUT 10 Mail
- Comment must be mail if we are still here, read it
- OUTPUT mail\15
-
- LIMITATIONS OF SCRIPTS:
-
- No variables, conditional branching, or similar features.
-
- The terminal emulator is not active during script execution, so that
- escape sequences (particularly the DEC "what kind of terminal are you?"
- sequence) will not be recognized. A login script designed for VAX/VMS systems
- with TERMINAL/INQUIRE should do an explicit INPUT for the enquiry string
- ("ESC Z", or "ESC [ 0 c") and then explicitly output the terminal ID string
- (like "ESC [ ? 6 c" for the VT102. The terminal emulator is independent of the
- script facility so that scripts can be a part of all MS-DOS Kermits, not just
- the IBM PC version.
-
- Sometimes 8-bit characters are displayed on the screen during script execution,
- even though PARITY might be SET to other than NONE.
-
- [End of MST22B.UPD]
- Date: 7 JUN 87 21:22-MST
- From: JRD@USU
- Subject: 7 MSTxxx.BOO files, following.
-
- In your queue are files dated 7 June 1987, MSK 2.29C:
-
- mstibm.boo IBM, tested
- msthp1.boo HP 110 and Portable Plus, untested
- msthpx.boo HP 150 untested
- mstgen.boo Generic, tested
- mstgri.boo Grid Compass, untested (need a tester too)
- mstz10.boo Zenith 100/200 (the S100 bus kinds) untested
- mstap3.boo NEC APC III, untested (has the VT102 emulator)
-
-
- To be finished here are the Victor 9000, Decmate II regular version, and
- not least the regular version for the Rainbow (partly done now). Apricot
- is out to the UK (Dick Carlton, rwtc%open.acs.vax@ac.uk), Sanyo 55x is out to
- Bob Babcock peprbv@cfaamp.bitnet and Joe White jhw@rti.bitnet,. Rainbow/Knoell
- needs rebuilding here to receive the latest improvements and will be sent
- later. Wang is out to Chris Lent, currently pedham@cuccfa.bitnet. A variant
- named EZP is being purged as a curiosity IBM clone of passed interest.
-
- The "Clone" Kermit not longer exists since regular MS Kermit/IBM
- now does the fancy footwork to use the Bios for serial port i/o if a real
- 8250 UART chip is not available. When the port is selected by Set Port ###
- a message about Bios usage is displayed, if appropriate. Testing for that
- chip is read-only for minimum disturbance to the host system. Should
- someone Set Port COMx when no such port exists then a message is displayed
- and the current port remains in force.
-
- Other small items, en passant. The IBM version measures the cpu speed
- automatically each time the serial port is opened, to provide reasonably
- accurate durations for waiting and Breaks (regular 275 ms and long 1800 ms)
- regardless of machine operational settings. Sort of a KI, Kermit Index.
- The IBM version also adapts automatically to systems using EGA boards in
- high density text modes, such as 132 columns and 43 lines, provided the
- user sets these modes outside of Kermit.
-
- Filtering of null and DEL characters has been revised so that
- the VT102 emulator can send all 256 binary byte combinations to a printer
- when Transparent Print is activated. The Set Translate Input table is
- bypassed during Transparent Print.
-
- The VT102 emulator is/will be in IBM, NEC APC III, Victor 9000, Wang,
- and perhaps in the Sanyo version with the IBM compatible video board.
-
- The keyboard translator and Set Translate Input table are in all
- versions.
-
- Regards,
- Joe D.
-
-
- ==================================
- File error.not
- MS Kermit returns ERRORLEVEL
- information for batch files.
-
- Version 2.30 of MS Kermit returns an error code to DOS for use in
- batch files as the ERRORLEVEL parameter. The codes are as follows:
- 0 success
- 1 error sending a file
- 2 error receiving a file
- 4 error executing a REMOTE command to a server
- The errors are culmulative while Kermit operates; thus errorlevel of 3
- indicates failure to both send and receive a file (or files) in this
- session. A successful operation does not change or reduce the errorlevel.
-
- jrd 7 June 1987
-
- =============================
- File multicom.not
-
- Notes on operating MS Kermit/IBM
- with serial ports COM3 and COM4
- Joe R. Doupnik
- 17 May 1987
-
- Kermit is now able to use some of the serial port expansion boards
- as COM3 and COM4. However, certain technical issues should be probed before
- attempting such operation.
-
- Kermit looks for the base address of the 8250 UART chip for each
- port by examining the four words in memory starting at location 40:00h
- (segment 40h, offset 0). The system boot procedure normally tests for standard
- COM1 and COM2 serial ports and puts their base address in the first two
- words, or zeros otherwise. You must insert the addresses for additional
- serial ports, as described below, in words three or four. Kermit assumes
- that COM3 shares the interrupt request line IRQ4 with the regular COM1 port
- and similiarly COM4 shares IRQ3. If these conditions are not met then Kermit
- cannot use the extra ports without changing the source code.
-
- Table of serial port numbers
-
- Serial Port Base address IRQ Conventions
- COM1 3F8H 4 IBM standard
- COM2 2F8H 3 IBM standard
- COM3 ? 4 your board, Kermit wants IRQ4
- COM4 ? 3 your board, Kermit wants IRQ3
-
- The addresses shown as query marks are to be found in the board's reference
- manual; values such as 2E8H and 2E0H would be common. However, there is
- no standard for anything to do with COM3 and COM4.
-
- Assuming that you have selected an address in harmony with the
- rest of the system (good luck on that part), set the board's switches or
- jumpers, and use DEBUG to insert the address(es) in segment 40H memory.
- The example below creates a small program named setcom3.com to put address
- 02E8H into the memory word 40:04H for COM3 and writes the program to drive C.
- (disregard the xxxx items below):
- DEBUG don't type these comments
- -n c:setcom3.com sets name of output file
- -a assemble command
- xxxx:100 mov ax,40 value 40h
- xxxx:103 mov es,ax put it into register es
- xxxx:105 mov ah,02 the 02 part of 02E8H
- xxxx:107 mov al,e8 the E8 part of same
- xxxx:109 es:
- xxxx:10A mov [4],ax store in 40:4 for com3 (40:6 for com4)
- xxxx:10D int 20 return to DOS
- xxxx:10F blank line to end assemble mode
- -r bx show contents of register bx
- BX 0000
- : 0 want register bx to hold 0
- -r cx show contents of register cx
- CX 0000
- : 0f set register cx to write 0fh bytes
- -w write material to the file
- -q quit debug
- DEBUG c:setcom3.com
- -u unassemble to see if all is well
- -q quit debug
-
- Note, for COM4, use [6] above rather than [4], and of course employ your
- board's port address in place of 02E8H. Check the manual.
-
- Finally, try it:
-
- C> setcom3 run the program
- C> DEBUG now see what's down there
- -dw 40:00 display words in seg 40H
- shows many words. See yours? Good.
- -q
- C>
-
- A small side effect noted in practice is the first time the extra
- port is used there may be garbage from it. Just return to the Kermit prompt
- and try again, all should be well the second time.
-
- More technical comments, for those with an interest. When Kermit
- finishes with a port it disables interrupts for that serial port and the
- interrupt request line (protects against stray interrupts later on).
- However, only one device at a time can be active on an IRQ. If you find
- that transmissions are good but there is no reception then another device
- has stolen the IRQ; disable it or find a guru. Kermit will work with non-
- standard addresses for COM1 and COM2 but the IRQ's must be as in the table
- above. Accessing a non-existant port produces a message and all commuications
- are discarded safely.
- ===================================
- File network.not
-
- Notes on running MS Kermit 2.30/IBM
- across Local Area Networks
- 25 April 1987
-
- 1. Introduction.
-
- The latest version of MS Kermit for IBM PC class machines is able
- to use many kinds of Local Area Networks (LANs) as its communications
- channel. The LANs are those based upon or emulate the IBM PCnet Netbios;
- these include the IBM PCnet, IBM Token Ring, AT&T StarLan, and others.
-
- To use a LAN the appropriate LAN board and software must be operating
- on the personal computer. This software is usually the 'client' side of
- a file/disk serving system. Next, run Kermit and give the command
-
- SET PORT NET nodename for a Kermit client
-
- This directs Kermit to communicate via the network components rather than
- the machine's serial port. Client machines need to state the node name
- of the remote system. That remote system is likely to be not the LAN file
- server but rather another user machine operating Kermit in server mode.
- Thankfully, Kermit does not understand the arcane language of file servers.
- If the local Kermit is restoring a previous connection or if it is to become
- a Kermit server then the node name can be omitted:
-
- SET PORT NET for a Kermit server
-
- After a pause of up to 20 seconds or so Kermit will respond with it's
- local node name or an error message saying the network is unavailable.
- No actual connection is made at this point; the network is just checking
- on uniqueness of our local node name (it does nothing with the remote node
- name until later). Thereafter, use normal Kermit commands as one would do with
- serial port communications. Really? Yes, indeed; everything is normal. Great!
-
- A connection is established with the first external communications
- request, such as a file transfer or entering terminal emulation Connect mode.
- If the connection cannot be completed then an error message indicates this
- situation; either the network is not functioning on your machine, the
- remote node is not available, the remote node name is incorrect, or even
- your kind of LAN is not supported by Kermit.
-
- A connection, or 'session' in network terminology, is Broken when
- - a Kermit is exited completely,
- - the HANGUP command is issued (yes, the same command as we use
- to hangup the phone with an attached modem),
- - a new SET PORT NET differentnode command is issued (but the
- session is Not broken by saying SET PORT COM1/2), or
- - one side or the other fails to respond to a packet after a network
- timeout interval (many seconds).
-
- A connection is maintained while switching to one of the regular
- serial ports (COM1 et al), while Pushed to DOS, and while we just stare
- at the screen for a while.
-
- Kermit remembers the name of the other end, so when returning to
- a network port from say COM1 just give the command
- SET PORT NET
- and resume where you left off.
-
- 2. Ways of using Kermit across a LAN.
-
- Kermit is likely to be used in two situations. First, as a high
- quality terminal to a remote host which permits logins via the network.
- The AT&T StarLan system connected to a Unix machine supports such remote
- terminals. Similarly, some remote applications are built to talk over the
- network directly to a terminal.
-
- Second, Kermit can be put into Server mode for access by other
- Kermits across the network. To make a Kermit into a server give the
- Kermit command Server, but naturally say SET PORT NET beforehand.
- The node name of a net Kermit is the name of the local node (the first entry
- in the table of names held in the network adapter board) with the appendage
- of .K (dot K), such as SALES.K.
-
- On a client Kermit give the command
-
- SET PORT NET SALES.K
-
- and then use regular Kermit file transfer commands. The server will attend
- to only one user at a time so Hangup the connection when you are done. The
- server will continue to respond to connections from other nodes until it
- is shut down or someone issues the LOGO/BYE commands.
-
- The network can support many Kermit servers since the name of each
- is formed from the machine's normal node name plus the extension of dot K.
-
- Two Kermits can converse in Connect mode if, but only if, one end is
- first put into Server mode and then the other end establishes a session.
- The two Kermit commands,
- REMOTE SEND one-line-message-to-server's-screen
- and
- LOGO
- are useful to synchronize the connection process before both Kermits are put
- into Connect mode (a Chat mode if you like).
-
- File transfers can be slower than expected because of the extra
- overhead of wrapping Kermit packets within network packets. A dramatic
- improvment in speed can be achieved by lengthing the Kermit packets to
- the full 1000 byte limit; on each end issue the Kermit commands
- SET SEND PACKET 1000
- SET RECEIVE PACKET 1000
- Do this on both ends to use long packets. This size is much longer than
- most network packets, but Kermit takes care to not over fill them.
-
- Control-S/Q (XON/XOFF) continue to work on an end to end basis.
- Some run-on is likely since there probably are one or two packets still
- in the communciations system.
-
- 3. Technical details.
-
- The LAN support in MS Kermit/IBM is written to interface with the
- IBM Netbios, Interrupt 5CH, and, if present, session level Interrupt 2AH.
- A test is made for presence of the 5CH interrupt and network board before
- issuing network commands. Keyboard, screen, disk, and other peripheral
- control is done locally on the PC. Thus, the identical Kermit program
- will run on a network or through the serial port (with or without an Intel
- 8250 UART chip) automatically. Network calls are kept as Netbios generic
- as possible.
-
- The Kermit status command shows the communications port as NET
- (port: N on the terminal status line). No node name is shown because
- they are 16 or more bytes long and screen real estate is fully used now.
-
- Internally, the network packet size is set to 256 bytes for both
- transmitter and receiver. This is a compromise between efficiency of longer
- network packets and space consumed within Kermit. Both transmission and
- reception are additionally buffered within Kermit. Reception is interrupt
- driven by the network software, transmission is not. Throughput should
- exceed 10-12K baud on an idle network with 1000 byte Kermit packets.
- Use the Kermit command SHOW STATISTICS to see average values.
-
- Virtual circuits, sessions, are employed rather than datagrams
- to ensure integrity of terminal mode communications and to reduce the
- number of lost packets when a network is heavily loaded with other traffic.
- Virtual circuits also isolate client to server communications to a pair
- of machines without mingling packets from other sources. The network can
- support many different Kermit client to server conversations simultaneously.
-
- Server mode starts by issuing a network LISTEN packet to solicit
- a connection from anyone using the server's node name. Thus, a session
- begins when another system sends a CALL packet to that node name AFTER the
- server has started. The session ends willingly as described in section 1
- and when a packet times out. Afterward, the server posts a new LISTEN
- packet to solicit a new a session. Breakage is nearly transparent on the
- client machine because Kermit remembers the last used remote node name.
-
- Client type Connect and file transfer modes begin by issuing a
- network CALL packet to the named node. Control does not resume until
- the CALL is answered by a Listener or the packet times out; Kermit retries
- the CALL many times, quietly. Typing Control-C will interrupt the CALL.
-
- A SET PORT NET command on a client remembers the last used node name.
- A server Listens for any remote node name and remembers the last used if
- such is needed when not in server mode any longer. Thus, SET PORT NET with
- no node name leaves intact any earlier name.
-
- The HANGUP command sends a disconnect message (a network Hangup
- packet) to the other side but leaves the remote node name intact. Exiting
- Kermit back to DOS results in a Hangup being executed; just Pushing to
- DOS retains the connection.
-
- Sending a BREAK is always delicate on LANs since the Netbios has
- no provision for such an RS 232-C signal. Manufacturers of some LANs have
- provided their own special methods for simulating a BREAK. More work is
- needed to support various systems.
-
- Specialized code will be introduced to support specific LANs. One
- such case will be allowance of long node names as are used to StarLan
- ISN gateways. Keyword NET will shift to allow the network name itself.
-
- MS Kermit/IBM has been successfully tested on the AT&T StarLan
- network while running on a PC's Limited 8 MHz AT clone which was loaded
- with an ega board, dual IOmega Bernoulli Boxes, real hard disk, etc. and
- on a Zenith 151 regular dual floppy PC clone. The network consisted of these
- two machines plus an AT&T Unix PC running AT&T Unix System V rel 3.0.
- The AT and PC clones operated under PC DOS 3.30.
-
- 4. Acknowlegments.
-
- The network development effort was made possible by the support of
- AT&T, StarLan Product Management and Paul G. Fox in particular; their
- contribution to Kermit is recognized. General support of Utah State University
- is also recognized (you ought to see the computer bills for Mail).
-
- Joe R. Doupnik, jrd@usu.Bitnet
- Center for Atmospheric Sciences and
- Department of Electrical Engineering
- Utah State University
- Logan, Utah 84322-4405
- (801) 750-2982 (work)
-
- ===============================
- File key.not
- Some quick notes on material
- going into MS Kermit 2.30
- Joe Doupnik
- 21 March 1987
-
- Keyboard translator:
-
- Brief list of present Set/Show Key syntax and predefined keys.
- This is all subject to change at any time (internal development only).
- Copied straight from the source code.
-
- ;Defining a key:
- ; Command is SET KEY <key ident><whitespace><definition>
- ;
- ; <key ident> is
- ; a single ordinary ascii char or
- ; the numerical equivalent of an ascii char or
- ; a Scan Code written as a number or
- ; keyword SCAN followed by a number.
- ; ? Displays help message.
- ; Numbers and Binary codes are of the form
- ; \123 a decimal number
- ; \o456 an octal number base letters o, d, x can be
- ; \d213 a decimal number upper or lower case
- ; \x0d a hex number
- ; \{b###} braces around above material following slash.
- ;
- ; <whitespace> is one or more spaces and or tabs.
- ;
- ; <definition> is
- ; missing altogether which "undefines" a key.
- ; \Kverb for a Kermit action verb; upper or lower case K is ok
- ; \{Kverb} ditto. Verb is the name of an action verb.
- ; text a string with allowed embedded whitespace and embedded
- ; binary chars as above. This kind of string may not
- ; commence with sequences \K or \{K; use braces below.
- ; {text} string confined to material within but excluding
- ; the braces. Note, where the number of opening braces
- ; exceeds the number of closing braces the end of line
- ; terminates the string: {ab{}{{c}d ==> ab{}{{c}d
- ; but {ab}{{c}d ==> ab.
- ; ? Displays help message and lists all action verbs.
- ;
- ; If Set Key is given interactively, as opposed to within a Take
- ; file, the system will prompt for inputs if none is on the command
- ; line. The response to Push key to be defined cannot be edited.
- ;
- ; Text which reduces to a single replacement character is put into a
- ; table separate from the multi-character strings (maxstng of these).
- ; A key may be translated into any single 8 bit code.
- ;
- ; Comments can follow a Kermit action verb or a braced string; no
- ; semicolon is required since all are stripped out by the Take file
- ; reader before the defining text is seen by SET KEY.
- ;
- ; The current Kermit escape character cannot be translated without
- ; subtrafuge.
- ;
- ; Examples:
- ; Set Key q z
- ; makes key q send character z
- ; Set Key \7 \27[0m
- ; makes key Control G send the four byte
- ; string ESC [ 0 m
- ; Set Key q
- ; undefines key q so it sends itself (q) again.
- ; Set Key \2349 \kexit
- ; defines IBM Alt-X to invoke the leave connect
- ; mode verb "exit" (Kermit's escape-char ^] C).
- ; Set Key \x0c Login \{x0d}myname\{x0d}mypass\x0d
- ; defines Control L to send the string
- ; Login <cr>myname<cr>mypass<cr>
- ;
- ; Alternative Set Key syntax for backward compatibility with previous versions
- ; The same forms as above except the key identification number must
- ; be decimal and must Not have a leading backslash. Example:
- ; Set Key Scan 59 This is the F1 key
- ;
- ; If the definition is omitted it may be placed on the following line;
- ; if that line is also empty the key is undefined (defined as Self).
- ; A warning message about obsolete syntax will be given followed by
- ; the key's modern numerical value and new definition. Only "special"
- ; keys (those not producing ascii codes) are compatible with this
- ; translator.
- ;
- ;Showing a key:
- ; Command is SHOW KEY <cr>
- ; System prompts user to press a key and shows the definition plus the
- ; free space for strings.
- -----------------------------------------------------------------------------
- ; Kermit IBM initialization time keyboard setup.
- ; internal coding: Kermit verb then key numerical ident (scan=256, shift=512)
-
- '\kgold',scan+59 ; F1
- '\kpf2',scan+60 ; F2
- '\kpf3',scan+61 ; F3
- '\kpf4',scan+62 ; F4
- '\kkp0',scan+shift+90 ; VT100 keypad numeric area, SF7
- '\kkp1',scan+shift+86 ; SF3
- '\kkp2',scan+shift+87 ; SF4
- '\kkp3',scan+shift+88 ; SF5
- '\kkp4',scan+shift+89 ; SF9
- '\kkp5',scan+68 ; F10
- '\kkp6',scan+shift+84 ; SF1
- '\kkp7',scan+63 ; F5
- '\kkp8',scan+64 ; F6
- '\kkp9',scan+65 ; F7
- '\kkpenter',scan+shift+89 ; SF6
- '\kkpcoma',scan+shift+85 ; SF2
- '\kkpminus',scan+66 ; F8
- '\kkpdot',scan+shift+91 ; SF8
- '\kuparr',scan+72 ; VT100 cursor keys (arrows)
- '\kdnarr',scan+80
- '\klfarr',scan+75
- '\krtarr',scan+77
- '\kupscan',scan+73 ; PgUp Kermit screen roll back keys
- '\kdnscan',scan+81 ; PgDn
- '\khomscn',scan+71 ; Home
- '\kendscn',scan+79 ; End
- '\kupone',scan+1156 ; Ctrl PgUp one line scrolls
- '\kdnone',scan+1142 ; Ctrl PgDn
- '\kmodeline',scan+74 ; Kermit toggle mode line Keypad -
- '\ktermtype',scan+2178 ; Kermit toggle terminal type Alt -
- '\kreset',scan+2179 ; Kermit reset terminal Alt =
- '\kprtscn',scan+1138 ; Kermit toggle print screen Ctrl *
- '\kdump',scan+1141 ; Kermit Dump Screen Ctrl End
- '\x7f',scan+83 ; Del key sends DEL
- '\x7f',scan+14 ; Backspace key sends DEL
- '\kexit',scan+2093 ; Exit connect mode Alt X
- '\kstatus',scan+2079 ; Connect mode status Alt S
- '\kbreak',scan+2096 ; Send a Break Alt B
- '\khelp',scan+2083 ; Connect mode drop down menu Alt H
-
- ------------------------------------------------
-
- Translation of bytes received at the serial port while in Connect mode:
-
- The pair of commands
- SET TRANSlation INPUT received-char local-char
- and
- SHOW TRANSlation INPUT
- provide an elementary conversion of one raw byte to another. The received
- character is translated into the local character before the rest of Kermit
- can see it; this is effective for only Connect mode (not file transfers or
- scripts).
- SET TRANS IN requires both byte specifications to be on the command
- line. The form of the byte specs is an ascii character or a numerical value,
- such as \65 (decimal for A), or \o101 (octal for A), or \x41 (hex for A).
- Examples:
- SET TRANS IN p \156 ; letter p sent to us is changed to Pound
- Sterling sign (decimal 156)
- SET TRANS IN o \143 ; letter o is visible as long A
- (as in Angstrom)
- SET TRANS IN \143 \7 ; long a translated to a beep (control g)
-
- SHOW TRANS displays bytes subject to change by Set Trans information.
- Note: the LOG file will show the local (translated) character.
- --------------------------------------------------
-
- SHOW STATistics shows the byte counts, etc. for file transfers.
-
- ---------------------------------------------------
-
- LOG {PACKET | SESSION} filespec revised LOG command
-
- DISABLE {DELETE | HOST} server mode control (protection?)
- ENABLE {DELETE | HOST} ditto
-
- SET SEND DELAY seconds waits the indicated number of
- seconds before starting a SEND
- command.
- ==============================
- File msk229b.not, old and you have all this material from an earlier digest.
-
- Notes on MS Kermit 2.29b
- 12 Jan 1987
-
- This most recent version of MS Kermit 2.29 has support for VT102
- printer commands, Long packets, and Scripts. Additionally, it has corrections
- to most problems known at this time.
-
- A new kind of MS Kermit, mstclo.boo, is available for near clones
- of IBM PC's but whose serial port hardware is not similar. Here is a
- description from the originator Glenn Everhart:
-
- This module is derived from MSXIBM.ASM and is intended for IBM PC
- near-clones that differ in their serial I/O but emulate the IBM
- BIOS. Such machines include Seequa Chameleon, DG/1, and others.
- The idea is to use the VT100 emulation (which will work) but
- use BIOS for all serial I/O. This is not interrupt driven and so
- will (unfortunately) not be able to keep up well at high baud
- rates. Nevertheless, it will be far better than the old Seequa
- version which didn't emulate anything.
- Glenn Everhart, RCA, via <LCG.KERMIT@DEC-MARLBORO>
-
- Bugs and internal improvments
- -----------------------------
- Two important problems with MS Kermit 2.29 (no letter) were an
- incompatibility with Hayes internal modems, and related modems: the modem
- would hangup the phone when a file transfer completed or Connect mode
- were exited, and secondly, null characters could be sent at the start of
- a file transfer or when Connect mode was entered. It seems that several
- mainframes regard null characters as important signals rather than as fillers.
- We have tested this version with a real Hayes 1200B modem with satisfactory
- results (whew!, but lets keep our fingers crossed).
-
- There were numerous small problems throughout MS Kermit, as might
- be expected, and those identified to date have been addressed. One important
- one was the serial port was left active if one PUSHed to DOS while in Connect
- mode.
-
- Serious DOS errors are trapped by Kermit to prevent Kermit from being
- aborted with the serial port interrupt alive and with a couple of other items
- redirected to Kermit itself. The most common such error is "Drive Not Ready."
- Previously, these conditions would invoke the normal DOS Critical Error proc
- which would request "Abort, Retry, Ignore?" and would abort the program if
- Abort were chosen. Now, Kermit exercises a fourth option, Fail the Operation,
- when these errors occur. Procedures spawning a second copy of Command.Com
- (DIR etc) still can yield the A/R/I message but it is harmless in this case.
- However, if such a message arises while Kermit is in Server mode a human must
- still type the answer locally. The implementation replaces the normal DOS
- Control-Break (^C) and Critical Error handlers with Kermit's own handlers and
- restores the originals when Kermit exits.
-
- Numerous small bugs concerning negotiated parameters (8 bit quoting,
- Block check types, etc) have been fixed; these mainly concerned Server mode
- operations. The terminal emulator no longer responds to the answer-back msg
- request; there is no answer-back message in the emulator. Screen handling
- has been improved internally, but it still has a few glitches.
-
- While in Connect mode 8 bit received data will be passed through to
- the terminal processor if the Parity type is None. If Debugging is ON then
- characters with their high bit set will be displayed as a tilde and then a
- code for the lower 7 bits; i.e., 10000001b is displayed as ~^A. Note: due
- to network quirks these characters may be mistranslated; the tilde is the
- funny wiggle character above the accent mark and the control symbol is a
- caret.
-
-
- Addition to Set Display commnad
- -------------------------------
- Set Display Regular | Serial | Quiet | 7-bit | 8-bit
-
- The keywords 7-bit and 8-bit have been added to control displays
- of characters in non-file transfer modes. 7-bit is the default and 8-bit
- becomes meaningless when parity is other than None. The Set Display
- command accepts two keywords in one command, processed left to right.
-
- Addition to Set Prompt command
- ------------------------------
- Special characters, such as escape, can be included in text of
- Kermit's prompt by specifying them as octal numbers in the form \ooo
- where o is an octal digit. Escape itself is \33. To return to Kermit's
- default prompt give the Set Prompt command without text. The replacement
- prompt can be up to 80 characters long.
-
- VT102 Printer support, for emulator in IBM and NEC AP3 versions.
- ----------------------
- New escape sequences:
-
- ESC [ i Print the entire screen (24 user lines) or just the text
- in the scrolling region, depending on ESC [ ? 19 h/l below.
- ESC [ 0 i is an equivalent command.
-
- ESC [ ? 1 i Print the line containing the cursor.
-
- ESC [ 4 i Disable Controller print. Cursor returns to its position
- when ESC [ 5 i was encountered earlier.
-
- ESC [ ? 4 i Disable Auto Print.
-
- ESC [ 5 i Enable Controller print; incoming text is sent to printer but
- not to the screen. Escape sequences are recognized and acted
- upon but are not printed. Cursor movement cannot be prevented.
-
- ESC [ ? 5 i Enable Auto Print; incoming text is sent to both screen and
- printer. Escape sequences are recognized and acted upon but
- are not printed.
-
- ESC [ ? 18 h Set Print termination char; requests Form Feed be printed
- after each Print Screen operation (ESC [ i).
-
- ESC [ ? 18 l Reset Print termination char; no FF after Print screen.
-
- ESC [ ? 19 h Sets print area of ESC [ i to be the whole screen (24 lines).
-
- ESC [ ? 19 l Resets print area of ESC [ i to be just scrolling region.
-
- ESC [ ? 15 n Request from remote host for printer status report.
-
- ESC [ ? 10 n Response to ESC [ ? 15 n if printer is ready.
-
- ESC [ ? 13 n Response to ESC [ ? 15 n if printer is not ready.
-
- The print device is selected to be the system printer (system file
- handle 4, LPT1) and the user has no choice in the matter. If the printer is
- not ready then a message to this effect is shown on the mode line (line 25)
- and the print request is skipped. Skipping is done to prevent systems from
- being hung just because the printer was not plugged in or similar trivia.
- Trailing spaces on each line are trimmed off to save printing time. These
- print screen operations should be compatible with all the other screen to
- printer operations (screen dump key, Log to PRN, DOS print screen, etc).
-
- Startup conditions are to reset both Print termination char and screen
- area bits; i.e., no FF after a print screen command and use scrolling region.
-
-
- Long Packets.
- -------------
- This version can use packets up to 1000 bytes in length. The trans-
- mitter selects the type of packet (Regular or Long) based upon the size of
- the data to be sent in that particular packet; negotiations at the start of a
- file transfer determine the maximum length. The receiver is prepared to accept
- Long packets at any time up to a maximum length set by the user.
-
- The commands Set Send Pack ### and Set Receive Pack ### limit the
- maximum packet size. ### can be as large as 1000. Kermit uses 94 byte
- packets as its default maximum size; longer packets will be employed only if
- the user gives the Set Send/Receive Pack commands above.
-
- The IBM serial port interrupt routine, buffer handler for received
- chars, and the packet assembly/disassembly routines Spack and Rpack have been
- completely rewritten for efficiency, Long packets, and high speed operations.
- It is possible to operate at 38400 baud on a plain 4.77 MHz IBM PC provided
- that the clock tic routine is not loaded with time consuming extras (Helpful
- Utilities, print spoolers, screen savers, and the like). Long packet and
- high efficiency code are system independent; fancy high speed operation code
- is for IBM PC's and clones and the DEC Rainbow.
-
-
- Scripts.
- --------
- A simple DEC 20 style script and raw file upload facility has been
- written by Jim Sturdevant and myself (he did the original version and we
- developed it from there). This code is actually system independent. A quick
- discussion is reproduced below, and the Kermit Help menu has further cryptic
- guidance.
-
- ----
- A quick guide to scripts in MS Kermit 2.29. There are several main script
- commands shown below in Upper case and yet another batch of Set commands
- to establish operational parameter for scripts.
-
- OUTPUT text
- Sends the single line of text out the serial port. Spaces and tabs
- are included. Control characters such as a carriage return must be stated
- as an octal number preceeded by a backslash: carriage return is \15, line
- feed is \12, bell is \7, and so forth. Example, dial the phone via a modem:
- Output atdt 5,1234, (918) 555-1212\15
- The "text" also can be the first line of a file or even from the console if
- the first letter of the text is an at-sign, @filename or @con. Thus,
- Output @con
- reads a line from the console and sends it out the serial port.
-
- INPUT [time] text
- This is a heavily used operation which reads characters from the
- serial port and attempts to match them to the line of text, or times out
- if it can't. A common command of this kind would be
- Input 30 Username:
- The sequence above waits up to 30 seconds for the pattern Username: to
- appear. If it does then the next script command is executed. If it does not
- appear then the script file can be told to Quit or to Proceed as if
- the pattern did occur. The time field is optional and is nominally 1 second.
- Selection of Quit or Proceed and the default waiting time are governed by
- the Set Input command discussed below. Text may also be replaced by
- at-sign filename to cause the pattern to be selected as the first line in
- that file.
- If the text pattern is omitted then the Input command reads
- characters from the serial port, displays and then discards them.
- A recent addition allows a carriage return typed at the local keyboard
- to force a pattern match (for those of us with limited patience concerning
- recalcerant remote hosts).
-
- PAUSE [time]
- Waits 1 second, or the number of seconds in the optional argument.
-
- ECHO text
- Simply writes the line of text on the screen.
-
- CLRINP
- Empties the serial port's buffer of stored but not yet read characters.
-
- TRANSMIT filespec [prompt]
- Raw file upload. Sends the named file (no wild cards) a line at a time
- to the remote host. Each line is expected to end with carriage return-line
- feed, and the trailing line feed is not sent. After each line Kermit waits
- for a prompt character from the other side. The default prompt char is a
- line feed. The command line allows the prompt to be changed to any other
- character (control codes are expressed as an octal number in the form \ooo);
- specifying a prompt of \0 means do not wait for a prompt. Alternatively,
- pushing the local Return key simulates reception of prompt.
- Trans foo.bar \7 send file "foo.bar", expect ^G as a prompt.
-
- SET INPUT commands:
-
- Set Input Default-timeout seconds
- Changes the waiting time from 1 second to this new value.
-
- Set Input Timeout-action Proceed or Quit
- Determines whether or not the current script file is to be continued
- or exited if a timeout occurs. Proceed is the default and means that timeouts
- are ignored. Quit causes the current script file to be exited and control
- passed to either the next higher level script file (if the present one were
- invoked by such) or to Kermit's main prompt.
-
- Set Input Case Ignore or Observe
- Says whether or not to distinguish upper and lower case text when
- doing a matchup in the INPUT command. Ignore causes upper and lower case
- letters to be considered the same. Default is to Ignore case distinctions.
-
- Set Input Echo On or Off
- Show on the screen characters read from the serial port during the
- script operation, or not. Default is On, show them.
-
- Values of Set Input things are shown on Kermit's Status display.
-
- Construction of a script file. Kermit has the ability to read a file,
- called a Take file in Kermit-ese, and execute the contents as Kermit commands.
- The Kermit command to do this is TAKE filename. Within such a file may be
- another Take command, and within it yet another Take and so on. Thus, the
- script is prepared as an ordinary text file and is invoked within Kermit
- by saying Take filename; a complete working example is given below.
- Before getting to it, however, a word or two about timeouts. If the
- action on timing out is set to Quit then the current Take file is exited
- whenever a timeout occurs and processing continues at any next higher level
- Take file; there is no conditional branching in this script facility. Also,
- Kermit looks for a particular file, MSKERMIT.INI, at startup time and
- executes it as the first Take file; you may place normal startup and script
- commands there as a convenience.
-
- An example script is shown below for connecting to machine VAXB via
- a modem and a Data Switch. The lines starting with Comment are ignored by
- Kermit and are there as a tutorial guide. Comments may also be placed on a
- line beginning with a semicolon. Upper case is used for clarity.
- File LOGIN.SCP -
-
- Comment set Kermit's baud rate to 2400
- SET SPEED 2400
- Comment flush any old junk
- CLRINP
- Comment don't display Take file commands as we go
- SET TAKE OFF
- Comment quit script if proper answers do not appear
- SET INPUT TIMEOUT-ACTION QUIT
- Comment see if modem is alive, hello modem.
- OUTPUT AT\15
- Comment look for its normal response
- INPUT OK
- Comment dial the Micom switch (from on-campus)
- OUTPUT ATDT 3458\15
- Comment look for phone being answered
- INPUT 25 CONNECT
- Comment wait 1 sec for modem to get ready
- PAUSE 1
- Comment then send control code carriage return,
- Comment expressed as an octal number preceded by \.
- OUTPUT \15
- Comment wait a sec for the switch to wake up
- PAUSE 1
- Comment one more time so the switch recognizes our baud rate
- OUTPUT \15
- Comment find first part of switch's announcement
- INPUT 10 slowly
- Comment ignore timeouts from here on
- SET INPUT TIMEOUT PROCEED
- Comment find last word of the announcement
- INPUT 15 CLASS
- Comment tell the switch where we want to attach
- OUTPUT VAXB\15
- Comment look for final prompt of Go and a beep
- INPUT 20 Go\7
- Comment let switch get ready for our response
- PAUSE 1
- Comment wakeup vaxb, c/r's, slowly as instructed
- OUTPUT \15
- PAUSE 1
- OUTPUT \15
- PAUSE 1
- Comment third c/r, just in case. Awaken Vaxen
- OUTPUT \15
- Comment look for login sequence
- INPUT Username:
- Comment give our username
- OUTPUT ItsMeAgain\15
- INPUT Password:
- Comment give ourselves a prompt and read from console
- ECHO \15\12Enter password:
- OUTPUT @con
- Comment we're in, go test for new mail msg
- TAKE mail.scp
- Comment go into VT102 terminal emulation mode
- CONNECT
-
- And here is file MAIL.SCP, with added comments -
-
- Comment show serial port traffic as we go
- SET TAKE ON
- Comment Exit this file if timeout (no new mail)
- SET INPUT TIMEOUT QUIT
- Comment look for keyword Mail, timeout if none
- INPUT 10 Mail
- Comment must be mail if we are still here, read it
- OUTPUT mail\15
- ---------------------------------------------------------------
-
- Joe Doupnik
- jrd@usu.bitnet
- ========================== end of message ================================
-
-
-
-
-